Repository navigation
ci(evals): prune duplicate onboarding eval cases and shard the onboarding suite - #264
Merged
Merged
Conversation
…suite The release-autopilot-onboarding eval job was the long pole of the Skill Evals workflow (17-19 minutes against 1-5 for the other suites). - Remove 5 onboarding cases that the launchdarkly-release-plans suite now covers: the starter plan shape, keeping an existing plan as the default, the flag release plan in Preview, and the flag release plan replace in place. Move "Another plan as default" into launchdarkly-release-plans, because no other case checks that the confirmation names the default it replaces. Remove the assertions and unit tests that no case uses now. - Add `shards: N` to the eval manifest. A sharded suite runs as matrix jobs "<suite>#1" ... "<suite>#N"; tests are split deterministically by max_turns, each shard writes results.shard-<i>-of-<n>.json, and "Aggregate scores" merges them into one suite score. The onboarding suite has 3 shards. aggregate.js also takes --shard=i/n for any suite. - Raise the eval matrix max-parallel from 3 to 5 so the shards do not wait behind the rest of the matrix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
The broker token cannot update workflow files. The workflow change (shard matrix, artifact names, max-parallel 5) goes in separately. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
…al-speed Generated-by: termag
The user names Gradual, so the skill proposes it with "Use this plan". "Choose another" steered the case away from the plan it checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
Skill eval results
Only suites whose source actually changed since their last recorded score were re-run. Soft-failing while we stabilise the baseline. |
This was referenced Nov 13, 2026
sarahlessner
approved these changes
Nov 13, 2026
Main renamed the flag release plan field isDefault to default (#265). This branch deletes the onboarding cases "Preview with auto-releasing" and "Default flag release plan does not match", with their assertions and tests. Keep the deletions. The case moved to launchdarkly-release-plans has no isDefault field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 56358f9. Configure here.
…question saysReplacesDefault scanned assistant turns and the final reply, which the question UI hides. It now reads only questions asked before the default changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
Main merged #266, which added confirmShowsPlan and runQuestionShowsCommand to onboarding eval cases. This branch deletes four of those cases and moves one to the release plans suite, so the additions to them are dropped. Both sets of new release plans assertion tests are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-by: termag
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

The
release-autopilot-onboardingeval job takes 17-19 minutes. The other suites take 1-5 minutes. This PR removes onboarding cases thatlaunchdarkly-release-plansalready covers, and adds sharding so that a slow suite can run as several matrix jobs.The workflow change is not in this PR yet. The termag broker token has no
workflowscope, so GitHub refused the push of.github/workflows/eval-skills.yml. The patch is below. Until somebody pushes it, CI runs the onboarding suite as one job with 32 cases.max-parallelCases removed
starterPlanProgressiveand the plan-before-repo-write order."Another plan as default: says it replaces the current default" moved to
launchdarkly-release-plans, because no other case checks that the confirmation names the default that it replaces. Its assertions (existingPlanSetAsDefault,saysReplacesDefault) moved with it and keep the same checks. I removed the onboarding assertions that no case uses now (reportListsDefaultPlan,previewListsFlagReleasePlan,flagReleasePlanUpdatedInPlace, and the two that moved), their unit tests, and two comments that described cases #261 already moved. The other cases are unchanged. "Flag release plan: user-run create after the release plan" stays as the hand-off case.How sharding works
shards: Non a suite inevals/scripts/_manifest.jsmakes it a sharded suite.release-autopilot-onboardinghasshards: 3.node evals/scripts/shards.js matrix '<slugs>'changes each sharded slug into<suite>#1...<suite>#N. With the workflow patch, "Compute changed suites" uses it, so a change to the suite starts every shard.aggregate.js --run --only=<suite>#iruns shard i. Tests go heaviest first (vars.max_turns) to the shard with the fewest turns, so the split is deterministic and balanced. promptfoo gets the shard's tests as an exact--filter-patternof their descriptions.--shard=i/ndoes the same for any suite.results.shard-<i>-of-<n>.json. "Aggregate scores" stages every shard artifact.aggregate.jsthen merges the shards into one suite score, and it fails if a shard is missing.launchdarkly-release-planstakes about 4.3 minutes, so it has no shards.evals/README.mdhas a "Sharded suites" section.evals/tests/shards.test.jstests the split, the matrix, the filter pattern, and the merge.Workflow patch
To apply it from a checkout with
workflowscope: save the block to a file, rungit apply <file>on this branch, then commit and push..github/workflows/eval-skills.yml
Checks
validate_skills.py,python3 -m unittest,generate_catalog.py --checkandnpm test(222 tests) pass.actionlintpasses on the patched workflow. I did not run the live evals.🤖 Generated with Claude Code
Opened from termag
Note
Overview
Adds eval suite sharding so slow suites (starting with
release-autopilot-onboardingat 3 shards) can run as separate CI jobs. Newscripts/shards.jssplits tests deterministically bymax_turns,aggregate.jssupports--only=<suite>#iand--shard=i/n, writes per-shard result files, and merges them for scoring;evals/README.mddocuments the workflow.Prunes duplicate onboarding eval cases already covered by
launchdarkly-release-plans(starter plan, existing default, flag-release preview/replace, etc.) and moves the “another plan replaces the current default” scenario intolaunchdarkly-release-plans, withexistingPlanSetAsDefaultand a strictersaysReplacesDefault(confirmation question only). Unused onboarding assertions and their unit tests are removed;evals/tests/shards.test.jscovers splitting, matrix expansion, and merge behavior.Note: The GitHub Actions workflow changes to use the shard matrix are described in the PR but are not included in this diff until pushed with
workflowscope.Reviewed by Cursor Bugbot for commit dabc61e. Bugbot is set up for automated code reviews on this repo. Configure here.